#ifndef IDEVICEVERTEXBUFFER_H
#define IDEVICEVERTEXBUFFER_H

#include "Framework/Prerequisites.h"
#include "Graphics/IDeviceBuffer.h"
#include "Framework/SharedPtr.h"

namespace tyro
{
	namespace Graphics
	{
		class IDeviceVertexBuffer : public IDeviceBuffer
		{
		public:

			IDeviceVertexBuffer(IDeviceBufferManagerBase* mgr, size_t vertexSize, size_t numberVertices);

			size_t GetVertexSize(void) const { return vertexSize; }
			size_t GetNumberVertices( void ) const;

		protected:

			IDeviceBufferManagerBase*	bufferManger;
			size_t						vertexSize;
			size_t						numberVertices;

		private:
		};

		class IDeviceVertexBufferSharedPtr : public Framework::SharedPtr<IDeviceVertexBuffer>
		{
		public:
			IDeviceVertexBufferSharedPtr() : SharedPtr<IDeviceVertexBuffer>() {}
			explicit IDeviceVertexBufferSharedPtr(IDeviceVertexBuffer* buf);

		};
	}
}
#endif